package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 销售订单物流跟踪对象 erp_sale_order_logistics
 *
 * @author wutao
 * @date 2024-06-30
 */
@TableName("erp_sale_order_logistics")
@ApiModel(value = "erp_sale_order_logistics对象", description = "销售订单物流跟踪")
@Data
public class SaleOrderLogisticsEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 物流跟踪主键id
     */
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * 订单id
     */
    @ApiModelProperty("订单id")
    @TableField("order_id")
    @Excel(name = "订单id")
    private String orderId;

    /**
     * 物流公司
     */
    @ApiModelProperty("物流公司")
    @TableField("logistics_company")
    @Excel(name = "物流公司")
    private String logisticsCompany;

    /**
     * 物流单号
     */
    @ApiModelProperty("物流单号")
    @TableField("logisitics_number")
    @Excel(name = "物流单号")
    private String logisiticsNumber;

    /**
     * 寄件人手机号
     */
    @ApiModelProperty("寄件人手机号")
    @TableField("sender_phone")
    @Excel(name = "寄件人手机号")
    private String senderPhone;

    /**
     * 起始地点
     */
    @ApiModelProperty("起始地点")
    @TableField("start_address")
    @Excel(name = "起始地点")
    private String startAddress;

    /**
     * 终止地点
     */
    @ApiModelProperty("终止地点")
    @TableField("end_address")
    @Excel(name = "终止地点")
    private String endAddress;

    /**
     * 发货时间
     */
    @ApiModelProperty("发货时间")
    @TableField("delivery_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /**
     * 物流状态
     */
    @ApiModelProperty("物流状态")
    @TableField("logistics_state")
    @Excel(name = "物流状态")
    private String logisticsState;

    /**
     * 签收时间
     */
    @ApiModelProperty("签收时间")
    @TableField("sign_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /**
     * 类型
     */
    @ApiModelProperty("类型")
    @TableField("type")
    @Excel(name = "类型")
    private String type;

    /**
     * 是否使用
     */
    @ApiModelProperty("是否使用")
    @TableField("is_used")
    @Excel(name = "是否使用")
    private Integer isUsed;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setLogisticsCompany(String logisticsCompany) {
        this.logisticsCompany = logisticsCompany;
    }

    public String getLogisticsCompany() {
        return logisticsCompany;
    }

    public void setLogisiticsNumber(String logisiticsNumber) {
        this.logisiticsNumber = logisiticsNumber;
    }

    public String getLogisiticsNumber() {
        return logisiticsNumber;
    }

    public void setSenderPhone(String senderPhone) {
        this.senderPhone = senderPhone;
    }

    public String getSenderPhone() {
        return senderPhone;
    }

    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress;
    }

    public String getStartAddress() {
        return startAddress;
    }

    public void setEndAddress(String endAddress) {
        this.endAddress = endAddress;
    }

    public String getEndAddress() {
        return endAddress;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setLogisticsState(String logisticsState) {
        this.logisticsState = logisticsState;
    }

    public String getLogisticsState() {
        return logisticsState;
    }

    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }

    public Date getSignTime() {
        return signTime;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setIsUsed(Integer isUsed) {
        this.isUsed = isUsed;
    }

    public Integer getIsUsed() {
        return isUsed;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("orderId", getOrderId())
                .append("logisticsCompany", getLogisticsCompany())
                .append("logisiticsNumber", getLogisiticsNumber())
                .append("senderPhone", getSenderPhone())
                .append("startAddress", getStartAddress())
                .append("endAddress", getEndAddress())
                .append("deliveryTime", getDeliveryTime())
                .append("logisticsState", getLogisticsState())
                .append("signTime", getSignTime())
                .append("type", getType())
                .append("isUsed", getIsUsed())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
